package com.example.video_open.ctr;

import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.EditText;


import com.example.video_open.R;
import com.rq.base.net.RequestType;
import com.rq.base.ui.BaseController;
import com.rq.base.ui.OnViewCreate;
import com.rq.base.ui.impl.LoginAssistorImpl;
import com.rq.base.util.LOG;

import java.io.File;

import androidx.annotation.NonNull;

public class MainController extends BaseController implements View.OnClickListener, TextWatcher,
        OnViewCreate {

    LoginAssistorImpl loginHelper = null;

    @Override
    public int getLayoutId() {
        //    LOG.e("MainController", "getLayoutId.56:");//####  2
        //    try {
        //      if (BASE.getLoginHelper() == null) {
        //        return R.layout.login_act_login;
        //      }
        //      LoginAssistorImpl login = (LoginAssistorImpl) BASE.getLoginHelper().newInstance();
        //      login.init(this);
        //      this.loginHelper = login;
        //      if (login.layout() != 0) {
        //        return login.layout();
        //      }
        //    } catch (IllegalAccessException e) {
        //      e.printStackTrace();
        //    } catch (InstantiationException e) {
        //      e.printStackTrace();
        //    } catch (NullPointerException e) {
        //      e.printStackTrace();
        //    }
        return R.layout.act_main;
    }

    EditText passInput;

    boolean skipBc() {
        return this.loginHelper == null;
    }

    @Override
    public void onViewCreated(Bundle savedInstanceState) {
        Log.e("MainController", "setOnClickListener.93:");
        super.onViewCreated(savedInstanceState);//####  3
        //    LOG.e("MainController", "setOnClickListener.95:");
        if (loginHelper != null) {
            LOG.e("MainController", "setOnClickListener.97:");
            try {
                loginHelper.onViewCreate();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        //    Log.e("MainController", "setOnClickListener.96:");
        //    setOnClickListener(this, R.id.btn_commit, R.id.btn_user_clear, R.id.btn_pass_show);
        //    Log.e("MainController", "setOnClickListener.98:");
        //    passInput = getView(R.id.et_pass);
        //    ((EditText) getView(R.id.et_user)).addTextChangedListener(this);
        //    String saveUser = SPUtil.getString(getContext(), "user");
        //    if (!TextUtils.isEmpty(saveUser)) {
        //      setData2View(R.id.et_user, saveUser);
        //    }
        //    boolean quitFromMain = !"WelcomeController".equals(BaseActivity.lastShowCon);
        //    try {
        //      quitFromMain = getPass(0);
        //    } catch (Exception e) {
        //
        //    }
        //    if (isRQ()) {
        //      setData2View(R.id.et_user, "ysk226691");
        //      setData2View(R.id.et_pass, "123");
        //      final boolean finalQuitFromMain = quitFromMain;
        //      PermissionUtil.selectLocalFile(getActivity(), new PermissionUtil.OnPermissionListener() {
        //        @Override
        //        public void onPermissionOk() {
        //          if (!finalQuitFromMain) {
        //            String saveUser = "ysk226691";
        //            String savePass = "123";
        //            toLogin(saveUser, savePass, skipBc());
        //          }
        //        }
        //      });
        //      final EditText user = getView(R.id.et_user);
        //      user.addTextChangedListener(new TextWatcher() {
        //        @Override
        //        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        //
        //        }
        //
        //        @Override
        //        public void onTextChanged(CharSequence s, int start, int before, int count) {
        //
        //        }
        //
        //        @Override
        //        public void afterTextChanged(Editable s) {
        //          if (s != null) {
        //            LOG.e("MainController", "afterTextChanged.141:" + s.toString().toLowerCase());
        //            String pass = null;
        //            if ("ysk226691".equals(s.toString().toLowerCase())) {
        //              pass = "123";
        //            } else if ("ysk227065".equals(s.toString().toLowerCase())) {//综合体验店 13服务器
        //              pass = "ysk227065";
        //            } else if ("ysk227259".equals(s.toString().toLowerCase())) {//天灯店
        //              pass = "123456";
        //            } else if ("ysk227260".equals(s.toString().toLowerCase())) {//天鹅湖
        //              pass = "123456";
        //            } else if ("ysk227261".equals(s.toString().toLowerCase())) {//古渡店
        //              pass = "4580";
        //            } else if ("ysk226820".equals(s.toString().toLowerCase())) {
        //              pass = "123456";
        //            }
        //            if (pass != null) {
        //              setData2View(R.id.et_pass, pass);
        //              AppUtils.hideInput(user);
        //            }
        //          }
        //        }
        //      });
        //    }
    }

    private void toLogin(String saveUser, String savePass, boolean skipBc) {
        showLoading("登陆中");
        //    BaseHttpManager.login(this, saveUser, savePass, skipBc);
    }

//    @Override
//    public boolean justLayout() {
//        return true;
//    }

    @Override
    public void onClick(View v) {
        //    if (v.getId() == R.id.iv_logo) {
        //      LOG.e("MainController", "onClick.175:" + loginHelper);
        //      if (loginHelper != null) {
        //        loginHelper.onTest();
        //      }
        //    } else if (v.getId() == R.id.btn_commit) {
        //      if (BuildConfig.LOG_DEBUG) {
        //        PermissionUtil.selectLocalFile(getActivity(), new PermissionUtil.OnPermissionListener() {
        //          @Override
        //          public void onPermissionOk() {
        //            String user = getInput(R.id.et_user);
        //            String pass = getInput(R.id.et_pass);
        //            toLogin(user, pass, loginHelper == null || !loginHelper.needBanCi());
        //          }
        //        });
        //      } else {
        //        String user = getInput(R.id.et_user);
        //        String pass = getInput(R.id.et_pass);
        //        toLogin(user, pass, loginHelper == null || !loginHelper.needBanCi());
        //      }
        //    } else if (v.getId() == R.id.btn_user_clear) {
        //      setData2View(R.id.et_user, "");
        //      v.setVisibility(View.GONE);
        //    } else if (v.getId() == R.id.btn_pass_show) {
        //      v.setSelected(!v.isSelected());
        //      if (v.isSelected()) {
        //        //如果选中，显示密码
        //        passInput.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
        //      } else {
        //        //否则隐藏密码
        //        passInput.setTransformationMethod(PasswordTransformationMethod.getInstance());
        //      }
        //    }
    }

    @Override
    protected boolean onResultOK(Intent data) {
        //    LOG.e("MainController", "onResultOK.102:");
        //    try {
        //      int res = getPass(0, data);
        //      if (res == RESULT_COMPLETE_SELECT) {
        //        toMain();
        //      }
        //      return true;
        //    } catch (Exception e) {
        //
        //    }
        return super.onResultOK(data);
    }

    @Override
    public <T> void onResponseSucceed(@NonNull RequestType type, T data) {
        //    if (loginHelper != null && loginHelper.onResponseSucceed(type, data)) {
        //      return;
        //    }
        //    super.onResponseSucceed(type, data);
        //    dismissLoading();
        //    if (type.is(Login)) {
        //      LoginBean bean = (LoginBean) data;
        //      AppInfo.saveLoginInfo(bean);
        //      toMain();
        //    } else if (type.is(GetPOSShift)) {
        //      if (loginHelper != null && loginHelper.needBanCi()) {
        //        ArrayList<ProfitCenterBean.ProfitCenterValueBean> list = new ArrayList<>();
        //        list.add((ProfitCenterBean.ProfitCenterValueBean) type.getMore());
        //        BanCiBean baseci = (BanCiBean) data;
        //        openFor(ProfitCenterController.class, list, baseci);
        //      }
        //    }
    }

    @Override
    public <T> void onResponseError(@NonNull final RequestType type, final T data) {
        //    if (loginHelper != null && loginHelper.onResponseError(type, data)) {
        //      return;
        //    }
        //    dismissLoading();
        //    if (type.is(Login)) {
        //      final LoginBean login = (LoginBean) type.getMore();
        //      if (data instanceof ProfitCenterBean) {
        //        if (((ProfitCenterBean) data).getProfitCenter_value() == null || ((ProfitCenterBean) data)
        //            .getProfitCenter_value().size() == 0) {
        //          //无利润中心
        //          toMain();
        //          return;
        //        }
        //        ArrayList<ProfitCenterBean.ProfitCenterValueBean> list = new ArrayList<>();
        //        list.addAll(((ProfitCenterBean) data).getProfitCenter_value());
        //        if ((loginHelper == null || !loginHelper.needBanCi()) && list.size() == 1) {
        //          //无需班次且只有一个利润中心
        //          AppInfo.setProfitCenter(getContext(), list.get(0));
        //          onResponseSucceed(type, login);
        //          return;
        //        }
        //        if (loginHelper != null && loginHelper.needBanCi() && list.size() == 1) {
        //          LOG.e("MainController", "onResponseError.GetPOSShift:");
        //          BaseHttpManager.GetPOSShift(login, this, list.get(0));
        //          //需要班次且只有一个利润中心
        //          toast("加载班次，只有一个班次自动存储数据跳转主页");
        //          return;
        //        }
        //        if (loginHelper != null && loginHelper.needBanCi()) {
        //          openFor(ProfitCenterController.class, list, true);
        //        } else {
        //          openFor(ProfitCenterController.class, list);
        //        }
        //      } else if (type.getMore() instanceof String) {
        //        toast((String) type.getMore());
        //      } else if (data instanceof UpdateBean) {
        //        final UpdateBean updateBean = (UpdateBean) data;
        //        //        if (AppUtils.isDebug()) {
        //        //          toast("开发板，跳过更新");
        //        //          BaseHttpManager.toMain(this, login, loginHelper == null || !loginHelper.needBanCi());
        //        //          return;
        //        //        }
        //        DialogHelper.showUpdate(getContext(), updateBean.getUpdate()
        //                                                        .getSRemark(), new DialogHelper.OnDialogConfirmListener() {
        //
        //          @Override
        //          public void onSure() {
        //            if (updateBean != null) {
        //              PermissionUtil
        //                  .selectLocalFile(getContext(), new PermissionUtil.OnPermissionListener() {
        //                    @Override
        //                    public void onPermissionOk() {
        //                      String downloadPath = updateBean.getUpdate().getUpdateServer();
        //                      String verName = updateBean.getUpdate().getAPPVersion();
        //                      //                      DownloadUtils mDownloadUtils = new DownloadUtils(getContext(), updateBean
        //                      //                          .getUpdate().getUpdateServer(), getString(R.string.app_name) + updateBean
        //                      //                          .getUpdate().getAPPVersion() + ".apk");
        //                      //                      mDownloadUtils.start();
        //
        //                      DownloadIntentService.setDownloadCallBack(MainController.this);
        //                      Intent intentService = DownloadIntentService
        //                          .getTask(getContext(), downloadPath, verName);
        //                      getActivity().startService(intentService);
        //                    }
        //                  });
        //            }
        //          }
        //
        //          @Override
        //          public void onCancel() {
        //            if (updateBean.getUpdate().isBForceUpdating()) {
        //              if (isDebug()) {
        //                toast("测试，跳过强制更新");
        //                BaseHttpManager
        //                    .toMain(MainController.this, login, loginHelper == null || !loginHelper
        //                        .needBanCi());
        //              } else {
        //                toast("当前版本必须更新才能运行");
        //              }
        //            } else {
        //              BaseHttpManager
        //                  .toMain(MainController.this, login, loginHelper == null || !loginHelper
        //                      .needBanCi());
        //            }
        //          }
        //
        //        });
        //      } else if (data != null) {
        //        toast(data.getRespMsg());
        //      } else if (type.getMore() instanceof BaseBean) {
        //        toast(((BaseBean) type.getMore()).getRespMsg());
        //      }
        //    }
    }

    private void toMain() {
        //    showLoading("信息获取中");
        //    String user = getInput(R.id.et_user);
        //    SPUtil.saveString(getContext(), "user", user);
        //    BHMManager.getInstance().response(Login.getTag(), new BHMManager.OnWaitListener() {
        //      @Override
        //      public void next() {
        //        dismissLoading();
        //        //        String user = getInput(R.id.et_user);
        //        //        String pass = getInput(R.id.et_pass);
        //        //        BaseHttpManager.uploadMachineInfo(MainController.this);
        //        AppInfo.setAutoLogin(getContext(), ((CheckBox) getView(R.id.btn_auto_login)).isChecked());
        //        LOG.e("MainController", "next.291:");
        //        runOnUiThread(new Runnable() {
        //          @Override
        //          public void run() {
        //            CrashReport.setUserId(AppInfo.getUserid());
        //            BASE.toMain(MainController.this);
        //          }
        //        });
        //      }
        //    });
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {

    }

    @Override
    public void afterTextChanged(Editable s) {
        //    setData2View(R.id.btn_user_clear, s != null && s.toString()
        //                                                    .length() > 0 ? View.VISIBLE : View.GONE);
    }

    @Override
    public void onActivityDestroy() {
        super.onActivityDestroy();
        if (loginHelper != null) {
            loginHelper.onActivityDestroy();
        }
    }

    @Override
    protected void onResume() {
        super.onResume();
        dismissLoading();
    }
}
